home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / djgpp / go32 / fs / io.h < prev    next >
C/C++ Source or Header  |  1995-03-21  |  6KB  |  148 lines

  1. #ifndef FS_IO_H
  2. #define FS_IO_H 1
  3.  
  4. /* --------------------- Additional key definitions --------------------- */
  5. #define K_BackTab 0x10f
  6. #define K_ELeft 0x24b
  7. /* ------------------ Values to be used with open_win ------------------- */
  8. #define single_border 1
  9. #define double_border 2
  10. /* -------------- Type definition to be used with text_win -------------- */
  11. typedef char     *ONE_LINE;
  12. typedef struct {
  13.     ONE_LINE *page;
  14.         char *tittle;
  15.     int lines;
  16. } WIN_TEXT;
  17.  
  18. /*--------------- Type definition to be used with dialog () ------------- */
  19. typedef struct D_ITEM {
  20.         char *field_name; 
  21.         word32 return_addr;
  22.         int  input_length; 
  23.         int  editable;
  24.         void (*formatter)(char*, char*);
  25.         void (*evaluater)(void*, char*);
  26.         void (*initializer)(char*, char *, word32); 
  27.         int  (*editor)(char *, word32, int, int, int, int *);
  28. } DIALOG_ITEM;           
  29. typedef struct B_ITEM {
  30.         char *name;
  31.         int  stay;
  32.         int  (*action)(DIALOG_ITEM dialog_data[]);
  33. } BUTTON_ITEM;
  34.  
  35. /* --------------- Type definition to be used with menu () -------------- */
  36. #define ITEM_TYPE 0
  37. #define MENU_TYPE 1
  38.  
  39. typedef struct M_ITEM {
  40.     char   *name;
  41.     int    type; 
  42.         char   *hot_key;                               /* i.e. Hot STRING */
  43.     struct M_ITEM *child;
  44. } MENU_ITEM;
  45.  
  46. /* ------------ Type definition to be used with parse_string () --------- */
  47. #define INT_TYPE 0
  48. #define STR_TYPE 1
  49.  
  50. typedef struct P_DEF {
  51.         char   *sw;
  52.         int    type;
  53.         union  {
  54.           int  *i_val;
  55.           char *s_val;
  56.         } val;
  57. } PARSE_DEF;
  58.  
  59. /* ----------------------- Type definition for message () --------------- */
  60. typedef enum { CL_Info, CL_Msg, CL_Error } CL_TYPE;
  61.  
  62. extern char *user_screen_save, *debug_screen_save;
  63. extern unsigned char screen_attr;
  64. extern unsigned char screen_attr_normal;
  65. extern unsigned char screen_attr_source;
  66. extern unsigned char screen_attr_focus;
  67. extern unsigned char screen_attr_ffocus;
  68. extern unsigned char screen_attr_break;
  69. extern unsigned char screen_attr_message;
  70. extern unsigned char screen_attr_error;
  71. extern unsigned char screen_attr_resize;
  72. extern unsigned char screen_attr_asm;
  73. extern unsigned char screen_attr_help;
  74. extern unsigned char screen_attr_addr;
  75. extern unsigned char screen_attr_hot;   
  76. extern unsigned char st_ln_attr;
  77. extern int cols, max_cols;
  78. extern int rows, max_rows;
  79. extern char *read_buffer;
  80. extern char StatusLine[100];
  81. /* ----------------------- Normal IO fuctions --------------------------- */
  82. unsigned int getykey(void);
  83. void put (int x, int y, unsigned char *txt);
  84. void putl (int x, int y, int l, unsigned char *txt);
  85. void clear_screen (void);
  86. void draw (int x, int y, unsigned char ch, int delta, int count);
  87. void highlight (int x, int y, int len);
  88. void frame (int x1, int y1, int x2, int y2, char *tittle);
  89. void double_frame (int x1, int y1, int x2, int y2, char *tittle);
  90. void screen_scroll (int lines);
  91. void put_screen (char *screen);
  92. char *get_screen (void);
  93. char *get_old_screen (void);
  94. void restore_screen (char *saved);
  95. void refresh (void);
  96. int mysleep (int secs);
  97. int short_sleep (unsigned long msecs);
  98. void message (CL_TYPE class, char *fmt, ...);
  99. int read_string (char *starttext);
  100. int my_read_string(char *prompt);
  101. int my_get_char(char *prompt);
  102. int confirm (char *prompt);
  103. /* ----------------------- Dialog routines ------------------------------ */
  104. void format_addr (char *output, char *input);
  105. void format_word (char *output, char *input); 
  106. void format_deci (char *output, char *input); 
  107. void format_int  (char *output, char *input); 
  108. void format_asis (char *output, char *input);
  109. void eval_word   (void *output, char *input);
  110. void eval_asis   (void *output, char *input); 
  111. void init_addr   (char *output, char *input, word32 addr); 
  112. void init_word   (char *output, char *input, word32 addr); 
  113. void init_deci   (char *output, char *input, word32 addr); 
  114. void init_int    (char *output, char *input, word32 addr); 
  115. void init_asis   (char *output, char *input, word32 addr); 
  116. int  editor      (char *text, word32 addr, int x, int y, int len, int *key);
  117. int  action_done (DIALOG_ITEM dialog_data[]);
  118. void dialog (char *tittle,
  119.              DIALOG_ITEM dialog_data[], BUTTON_ITEM button_data[], int *ret);
  120. /* ---------------------- Windows routines ------------------------------ */
  121. char *open_win(int width, int height, int attribute, int border,
  122.            int *x_start, int *y_start, int *actual_width, char *tittle);
  123. void close_win(char *saved);
  124. void init_text (WIN_TEXT *text, char *tittle);
  125. void add_text (WIN_TEXT *text, char *line);
  126. void free_text (WIN_TEXT *text);
  127. void text_win (WIN_TEXT text, int user_width, int user_height);
  128. /* ----------------------- Menus routines ------------------------------- */
  129. int  display_bar_menu (MENU_ITEM menu_data[], int *pos);
  130. int  display_pop_menu (MENU_ITEM menu_data[], char *tittle, 
  131.                        int x_pos, int y_pos);
  132. void menu (MENU_ITEM menu_data[], int *BarSelect, int *PopSelect);
  133. void pop_menu (MENU_ITEM menu_data[], char *tittle, int x, int y, 
  134.                int *PopSelect); 
  135. void show_menu_bar (MENU_ITEM menu_data[]); 
  136. /* --------------------------- Parse ------------------------------------ */
  137. void parse_string (PARSE_DEF definition[], char *s);
  138. /* --------------------------- Misc ------------------------------------- */
  139. void write_log (int x1, int y1, int x2, int y2);
  140. void read_log (void); 
  141. void read_write_log(int x1, int y1, int x2, int y2);
  142. /* ------------------------- Initialize --------------------------------- */
  143. void re_start_transfer (void);
  144. void init_io (int com_port);
  145. void re_init_io (int com_port, int new_rows, int new_cols);
  146. void init_color (int color);
  147. #endif
  148.